home *** CD-ROM | disk | FTP | other *** search
- import java.awt.Event;
- import java.awt.Image;
- import java.awt.image.ImageObserver;
- import java.awt.image.MemoryImageSource;
- import java.awt.image.PixelGrabber;
-
- class JMxImageObserver extends JMxMediaObserver implements ImageObserver {
- public boolean m_Notify;
- public boolean m_bAdjustSourceRect;
- public int m_nAdjustWidth = -1;
- public int m_nAdjustHeight = -1;
-
- int Parseflags(int var1) {
- if ((var1 & 64) != 0) {
- return 4;
- } else if ((var1 & 128) != 0) {
- return 2;
- } else {
- return (var1 & 32) != 0 ? 8 : 1;
- }
- }
-
- public void CheckStatus() {
- this.m_Notify = true;
- }
-
- public void LoadDone(int var1) {
- super.m_OwnerMItem.SetStatus(var1);
- if (this.m_Notify) {
- Event var2 = new Event(this, 98987, super.m_OwnerMItem);
- super.m_Player.m_EventQ.Send(var2);
- }
-
- super.m_Player.m_MediaLoader.DecrementWaitCount(super.m_OwnerMItem.m_FirstFrame);
- }
-
- public Image AdjustImage(Image var1) {
- Image var2 = var1;
- if (var1 == null) {
- return null;
- } else {
- int var3 = var1.getWidth((ImageObserver)null);
- int var4 = var1.getHeight((ImageObserver)null);
- if (this.m_bAdjustSourceRect) {
- int var5 = var3;
- int var6 = var4;
- if (this.m_nAdjustWidth != -1) {
- var5 = this.m_nAdjustWidth;
- } else if (var3 < super.m_Width) {
- var5 = super.m_Width;
- }
-
- if (this.m_nAdjustHeight != -1) {
- var6 = this.m_nAdjustHeight;
- } else if (var4 < super.m_Height) {
- var6 = super.m_Height;
- }
-
- if (var5 != var3 || var6 != var4) {
- int var24 = var5 * var6;
- int[] var8 = new int[var24];
- int[] var9 = new int[var3 * var4];
- PixelGrabber var10 = new PixelGrabber(var1, 0, 0, var3, var4, var9, 0, var3);
-
- try {
- var10.grabPixels();
- } catch (InterruptedException var17) {
- JMxLog.Log(1, "CreateTransparentImage: PixelGrabber failed");
- return var1;
- }
-
- int var11 = var9[0] & 16777215;
- boolean var12 = false;
- boolean var13 = false;
- int var14 = 0;
- int var15 = 0;
-
- for(int var28 = 0; var28 < var6; ++var28) {
- for(int var27 = 0; var27 < var5; ++var27) {
- var14 = var28 * var5 + var27;
- if (var27 < var3 && var28 < var4) {
- var15 = var28 * var3 + var27;
- int var16 = var9[var15] & 16777215;
- if (var11 != var16) {
- var8[var14] = var9[var15];
- } else {
- var8[var14] = 16777215;
- }
- } else {
- var8[var14] = 16777215;
- }
- }
- }
-
- MemoryImageSource var31 = new MemoryImageSource(var5, var6, var8, 0, var5);
- var2 = super.m_Player.createImage(var31);
- Object var26 = null;
- Object var25 = null;
- Object var32 = null;
- return var2;
- }
- }
-
- if (super.m_Transparent) {
- var2 = this.CreateTransparentImage(var1);
- }
-
- if (!this.m_bAdjustSourceRect && !super.m_Transparent && !super.m_Player.m_JVM10) {
- JMxLog.Log(4, "adjust image playw " + super.m_Width + " playh " + super.m_Height + " srcW " + var3 + " srcH " + var4);
- if (super.m_Width == var3 && super.m_Height == var4) {
- int[] var20 = new int[var3 * var4];
- PixelGrabber var22 = new PixelGrabber(var2, 0, 0, var3, var4, var20, 0, var3);
-
- try {
- var22.grabPixels();
- MemoryImageSource var7 = new MemoryImageSource(var3, var4, var20, 0, var3);
- var2 = super.m_Player.createImage(var7);
- } catch (InterruptedException var18) {
- System.out.println("pixel grab failed ");
- }
-
- Object var21 = null;
- Object var23 = null;
- }
- }
-
- return var2;
- }
- }
-
- public boolean imageUpdate(Image var1, int var2, int var3, int var4, int var5, int var6) {
- if (super.m_Player.m_MediaLoader.m_LoadAction == 4) {
- return false;
- } else {
- int var7 = this.Parseflags(var2);
- if ((var7 & 14) == 0) {
- return true;
- } else {
- this.LoadDone(var7);
- return false;
- }
- }
- }
-
- protected Image CreateTransparentImage(Image var1) {
- int var2 = var1.getWidth((ImageObserver)null);
- int var3 = var1.getHeight((ImageObserver)null);
- int[] var4 = new int[var2 * var3];
- PixelGrabber var5 = new PixelGrabber(var1, 0, 0, var2, var3, var4, 0, var2);
-
- try {
- var5.grabPixels();
- } catch (InterruptedException var9) {
- JMxLog.Log(1, "CreateTransparentImage: PixelGrabber failed");
- return var1;
- }
-
- int var6 = 0;
-
- for(int var7 = 0; var7 < var2 * var3; ++var7) {
- if (var7 == 0) {
- var6 = var4[0] & 16777215;
- }
-
- int var8 = var4[var7] & 16777215;
- if (var6 == var8) {
- var4[var7] = var8;
- }
- }
-
- MemoryImageSource var12 = new MemoryImageSource(var2, var3, var4, 0, var2);
- Image var14 = super.m_Player.createImage(var12);
- Object var10 = null;
- Object var11 = null;
- Object var13 = null;
- return var14;
- }
-
- public JMxImageObserver(JMxPlayer var1, String var2, int var3, int var4, boolean var5, boolean var6, int var7, int var8) {
- super(var1, var2, var3, var4, var5);
- this.m_bAdjustSourceRect = var6;
- this.m_nAdjustWidth = var7;
- this.m_nAdjustHeight = var8;
- }
-
- public void LoadNow() {
- Image var1 = super.m_Player.m_Owner.getImage(super.m_Player.m_urlDefaultPath, super.m_Filename);
- super.m_OwnerMItem.m_MediaObject = var1;
- if (this.m_bAdjustSourceRect) {
- if (super.m_Player.prepareImage(var1, this)) {
- this.LoadDone(8);
- return;
- }
- } else if (super.m_Player.prepareImage(var1, super.m_Width, super.m_Height, this)) {
- this.LoadDone(8);
- }
-
- }
- }
-